<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Seata - 分布式事务解决方案</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            line-height: 1.6;
        }
        .hero {
            background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
            color: white;
        }
        .card {
            transition: all 0.3s ease;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
        }
        .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
        }
        .feature-icon {
            font-size: 2.5rem;
            margin-bottom: 1rem;
            color: #2a5298;
        }
        .first-letter {
            font-size: 3.5rem;
            line-height: 1;
            float: left;
            margin-right: 0.5rem;
            font-weight: 700;
            color: #1e3c72;
        }
        .footer {
            background-color: #1a1a1a;
            color: #ffffff;
        }
        .footer a:hover {
            color: #2a5298;
        }
        .mermaid {
            background-color: #f8f9fa;
            border-radius: 0.5rem;
            padding: 1.5rem;
            margin: 2rem 0;
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero py-20 px-4 md:px-0">
        <div class="container mx-auto max-w-6xl text-center">
            <h1 class="text-4xl md:text-5xl font-bold mb-6 font-serif">Seata</h1>
            <h2 class="text-2xl md:text-3xl font-medium mb-8">开源的分布式事务解决方案</h2>
            <p class="text-xl max-w-3xl mx-auto">简化微服务架构中的分布式事务问题，为分布式系统提供事务一致性保障</p>
            <div class="mt-12">
                <a href="#features" class="bg-white text-blue-800 px-8 py-3 rounded-full font-medium inline-block hover:bg-gray-100 transition-colors">
                    了解更多 <i class="fas fa-arrow-down ml-2"></i>
                </a>
            </div>
        </div>
    </section>

    <!-- Introduction Section -->
    <section class="py-16 px-4 md:px-0">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row items-center">
                <div class="md:w-1/2 mb-10 md:mb-0 md:pr-10">
                    <div class="relative">
                        <div class="first-letter">S</div>
                        <p class="text-lg leading-relaxed">eata 是一个开源的分布式事务解决方案，旨在简化和解决微服务架构中的分布式事务问题。它为分布式系统提供了事务一致性保障，特别适用于需要跨多个服务执行事务的场景。它通过提供多种事务模式和高可用性设计，能够有效地解决分布式系统中的事务一致性问题，适用于各种复杂的微服务场景。</p>
                    </div>
                </div>
                <div class="md:w-1/2">
                    <div class="mermaid">
                        graph LR
                            A[客户端] -->|发起事务| B(TM 事务管理器)
                            B -->|注册| C(TC 事务协调器)
                            B -->|调用| D[服务A]
                            D -->|注册分支| C
                            B -->|调用| E[服务B]
                            E -->|注册分支| C
                            B -->|提交/回滚| C
                            C -->|通知结果| D
                            C -->|通知结果| E
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Features Section -->
    <section id="features" class="py-16 px-4 md:px-0 bg-gray-100">
        <div class="container mx-auto max-w-6xl">
            <h2 class="text-3xl font-bold text-center mb-16 font-serif">Seata 的核心功能</h2>
            
            <div class="grid md:grid-cols-2 gap-8 mb-12">
                <div class="card bg-white p-8 rounded-lg">
                    <div class="feature-icon">
                        <i class="fas fa-network-wired"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-4">分布式事务管理</h3>
                    <p>Seata 提供了一套完整的分布式事务管理方案，支持在微服务架构中管理和协调跨多个服务的事务。</p>
                </div>
                
                <div class="card bg-white p-8 rounded-lg">
                    <div class="feature-icon">
                        <i class="fas fa-cogs"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-4">事务模式</h3>
                    <ul class="space-y-2">
                        <li><i class="fas fa-check-circle text-blue-600 mr-2"></i> <strong>AT模式</strong>: 自动模式，适用于大多数场景</li>
                        <li><i class="fas fa-check-circle text-blue-600 mr-2"></i> <strong>TCC模式</strong>: 手动模式，适合复杂业务场景</li>
                        <li><i class="fas fa-check-circle text-blue-600 mr-2"></i> <strong>SAGA模式</strong>: 用于处理长事务</li>
                    </ul>
                </div>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8">
                <div class="card bg-white p-8 rounded-lg">
                    <div class="feature-icon">
                        <i class="fas fa-shield-alt"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-4">高可用性和可靠性</h3>
                    <p>Seata 支持集群部署，确保在一个节点发生故障时，其他节点可以接管事务管理工作，从而提高系统的可靠性和高可用性。</p>
                </div>
                
                <div class="card bg-white p-8 rounded-lg">
                    <div class="feature-icon">
                        <i class="fas fa-language"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-4">跨语言支持</h3>
                    <p>虽然 Seata 的核心功能主要基于 Java，但它也提供了对其他语言的支持，方便与其他语言的微服务进行集成。</p>
                </div>
            </div>
        </div>
    </section>

    <!-- Advantages Section -->
    <section class="py-16 px-4 md:px-0">
        <div class="container mx-auto max-w-6xl">
            <h2 class="text-3xl font-bold text-center mb-16 font-serif">Seata 的优势</h2>
            
            <div class="grid md:grid-cols-3 gap-8">
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-bolt fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">简化分布式事务处理</h3>
                    <p>Seata 通过提供高层次的分布式事务管理功能，减少了开发者在分布式事务中的工作复杂度，降低了分布式事务的实现难度。</p>
                </div>
                
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-lock fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">事务一致性保障</h3>
                    <p>通过支持不同的事务模式，Seata 可以有效处理各种复杂的分布式事务场景，保障数据的一致性和完整性。</p>
                </div>
                
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-random fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">灵活的事务模式选择</h3>
                    <p>Seata 提供多种事务模式（AT、TCC、SAGA），开发者可以根据具体业务需求选择最合适的模式。</p>
                </div>
                
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-tachometer-alt fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">良好的性能和扩展性</h3>
                    <p>Seata 设计时考虑了性能和扩展性，通过优化的事务协调算法和支持集群部署，能够处理高并发、大规模的分布式事务场景。</p>
                </div>
                
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-plug fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">易于集成</h3>
                    <p>Seata 提供了丰富的 SDK 和工具，便于与现有的微服务框架（如 Spring Cloud、Dubbo 等）进行集成。</p>
                </div>
                
                <div class="card bg-white p-6 rounded-lg">
                    <div class="text-blue-600 mb-4">
                        <i class="fas fa-users fa-2x"></i>
                    </div>
                    <h3 class="text-xl font-bold mb-3">活跃的社区支持</h3>
                    <p>作为开源项目，Seata 拥有活跃的开发者社区，持续改进产品并提供技术支持。</p>
                </div>
            </div>
        </div>
    </section>

    <!-- Transaction Modes Section -->
    <section class="py-16 px-4 md:px-0 bg-gray-100">
        <div class="container mx-auto max-w-6xl">
            <h2 class="text-3xl font-bold text-center mb-16 font-serif">事务模式对比</h2>
            
            <div class="overflow-x-auto">
                <table class="w-full bg-white rounded-lg overflow-hidden">
                    <thead class="bg-blue-800 text-white">
                        <tr>
                            <th class="py-3 px-4 text-left">模式</th>
                            <th class="py-3 px-4 text-left">特点</th>
                            <th class="py-3 px-4 text-left">适用场景</th>
                            <th class="py-3 px-4 text-left">性能影响</th>
                        </tr>
                    </thead>
                    <tbody class="divide-y divide-gray-200">
                        <tr>
                            <td class="py-4 px-4 font-medium">AT (Auto Transaction)</td>
                            <td class="py-4 px-4">自动模式，无需业务代码修改，自动生成反向SQL</td>
                            <td class="py-4 px-4">大多数常规业务场景</td>
                            <td class="py-4 px-4">中等</td>
                        </tr>
                        <tr>
                            <td class="py-4 px-4 font-medium">TCC (Try-Confirm-Cancel)</td>
                            <td class="py-4 px-4">需要业务实现try/confirm/cancel接口，灵活性高</td>
                            <td class="py-4 px-4">复杂业务场景，需要精确控制事务</td>
                            <td class="py-4 px-4">较低</td>
                        </tr>
                        <tr>
                            <td class="py-4 px-4 font-medium">SAGA</td>
                            <td class="py-4 px-4">长事务模式，最终一致性，需要业务实现补偿机制</td>
                            <td class="py-4 px-4">长时间运行的事务流程</td>
                            <td class="py-4 px-4">低</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </section>

    <!-- Architecture Diagram -->
    <section class="py-16 px-4 md:px-0">
        <div class="container mx-auto max-w-6xl">
            <h2 class="text-3xl font-bold text-center mb-8 font-serif">Seata 架构</h2>
            <div class="mermaid">
                graph TD
                    subgraph 客户端
                        TM[Transaction Manager]
                        RM[Resource Manager]
                    end
                    
                    subgraph Seata Server
                        TC[Transaction Coordinator]
                    end
                    
                    TM -->|1. 开启全局事务| TC
                    TM -->|2. 调用微服务| ServiceA
                    ServiceA -->|3. 注册分支事务| TC
                    TM -->|4. 调用微服务| ServiceB
                    ServiceB -->|5. 注册分支事务| TC
                    TM -->|6. 提交/回滚全局事务| TC
                    TC -->|7. 通知结果| ServiceA
                    TC -->|8. 通知结果| ServiceB
            </div>
        </div>
    </section>

    <!-- Footer -->
    <footer class="footer py-8 px-4 md:px-0">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-4 md:mb-0">
                    <h3 class="text-xl font-bold">技术小馆</h3>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="hover:text-blue-400 transition-colors" target="_blank">
                        <i class="fas fa-link mr-2"></i> www.yuque.com/jtostring
                    </a>
                </div>
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
</body>
</html>